package com.itany.corejava.code07_面向对象;

import java.util.Arrays;

/**
 * @author 石小俊
 * 2024年07月12日 13:37
 */
public class Test01_类的使用 {

    public static void main(String[] args) {
        // 想要调用指定类中的非static修饰的方法,必须先创建该类所对应的对象
        // 语法:类名 对象名 = new 类名()
        Person person = new Person();

        // 赋值
        // 对象名.属性名=属性值
        person.name = "admin";
        person.age = 19;
        person.gender = "男";
        person.hobbies = new String[]{"吃饭", "睡觉", "打豆豆"};

        // 取值
        // 此时的对象尚未赋予任何信息
        // 会自动为所有对象中的属性设置一个默认值
        // 其默认值与数组中元素一致,所有引用类型的默认值均为null
        System.out.println(person.name);
        System.out.println(person.age);
        System.out.println(person.gender);
        System.out.println(Arrays.toString(person.hobbies));
        // 调用方法
        person.eat();
        person.sleep();
        person.show();

        System.out.println("*********************************************");

        // 每个类可以存在无数个对象
        Person person2 = new Person();
        person2.name = "alice";
        person2.age = 18;
        person2.gender = "女";
        person2.hobbies = new String[]{"听歌", "看电视", "旅游", "学Java"};
        System.out.println(person2.name);
        person2.show();
    }

}

class Person {
    String name;
    int age;
    String gender;
    String[] hobbies;

    public void eat() {
        System.out.println(name + "饿了,想要吃饭");
    }

    public void sleep() {
        System.out.println(name + "困了,想要睡觉");
    }

    public void show() {
        System.out.println("我叫做:" + name + ",今年" + age + "岁,是一个" + gender + "性,我平常喜欢:" + Arrays.toString(hobbies));
    }
}
